package cn.csc.module.pay.controller.admin.fund.vo;

import lombok.*;

import java.math.*;
import java.math.BigDecimal;
import io.swagger.annotations.*;
import javax.validation.constraints.*;

/**
* 用户资金 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class PayFundBaseVO {

    @ApiModelProperty(value = "商户编号", required = true)
    @NotNull(message = "商户编号不能为空")
    private BigInteger merchantId;

    @ApiModelProperty(value = "第三方用户id", required = true)
    @NotNull(message = "第三方用户id")
    private String appUserId;
    @ApiModelProperty(value = "账号类型1企业，2个人", required = true)
    private Integer fundType;

    @ApiModelProperty(value = "可用余额")
    private BigDecimal balance;

    @ApiModelProperty(value = "累计可提现总额")
    private BigDecimal balanceTotal;

    @ApiModelProperty(value = "累计到账子账户总额")
    private BigDecimal arrivalTotal;

    @ApiModelProperty(value = "冻结资金")
    private BigDecimal freeze;

    @ApiModelProperty(value = "总额")
    private BigDecimal amount;

    @ApiModelProperty(value = "扣除通联支付手续费的金额")
    private BigDecimal amountCompute;

    @ApiModelProperty(value = "平安银行见证宝维一编码")
    private String jzbCode;

    @ApiModelProperty(value = "见证宝同步状态0:未同步;1:同步")
    private Integer jzbStatus;

    @ApiModelProperty(value = "虚拟会员ID，与平安鉴证宝一一对应")
    private String vMemberId;

    @ApiModelProperty(value = "提现金额的可提现的额度")
    private String amountQuota;

    @ApiModelProperty(value = "服务费利率")
    private Double interestRate;

    @ApiModelProperty(value = "设置取默认或者手动设置费率 1:默认 2：手动")
    private Integer setUp;

    @ApiModelProperty(value = "会员电子协议编号")
    private String contractNo;

    @ApiModelProperty(value = "见证宝签约否成功标志S-成功 F-失败")
    private String reinSuccessFlag;

    @ApiModelProperty(value = "见证宝签约IP地址")
    private String ipAddress;

    @ApiModelProperty(value = "见证宝签约MAC地址")
    private String macAddress;

    @ApiModelProperty(value = "见证宝签约渠道1-app 2-平台H5网页 3-公众号 4-小程序    功能标志FunctionFlag=1时必输")
    private String signChannel;

    @ApiModelProperty(value = "是否提现签约 0:未签约 1:已签约 2:签约失败")
    private Integer signStatus;

}
